草庐IT

c++ - FormatMessage 为另一种语言

全部标签

Ruby 沙盒与集成脚本语言

我目前正在使用Ruby开发基于文本的游戏引擎,应用程序分为/lib中的Ruby代码和/data中的YAML数据,游戏需要时加载。我想让数据文件包含基本脚本,主要是在事件/观察者模型中。但是,我也希望用户能够生成和共享自定义场景,而不必担心脚本中嵌入了恶意代码。附录:我最初的计划是将用户创建的内容分为两种类型,“模块”是仅数据(因此安全)和添加额外功能的插件(但显然是不安全)。类比桌面游戏,模块就像发布的冒险场景和内容,插件就像包含额外规则和系统的规则手册。示例脚本(语法当然会根据解决方案而改变):---Location:observers:on_door_open:|monster=s

ruby - 有没有一种干净的方法来访问哈希数组中的哈希值?

在这段代码中:arr=[{id:1,body:'foo'},{id:2,body:'bar'},{id:3,body:'foobar'}]arr.map{|h|h[:id]}#=>[1,2,3]是否有更简洁的方法从这样的哈希数组中获取值?Underscore.jshaspluck,我想知道是否有Ruby等价物。 最佳答案 如果你不介意猴子修补,你可以自己动手:arr=[{id:1,body:'foo'},{id:2,body:'bar'},{id:3,body:'foobar'}]classArraydefpluck(key)map

Ruby DSL(领域特定语言)存储库、示例

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭6个月前。Improvethisquestion我正在寻找RubyDSL(领域特定语言)的优秀示例。您知道哪些存储库和项目值得一读?为什么它(或者:它们是)很好的例子?我对经过深思熟虑和设计的更复杂的示例特别感兴趣。

c - Ruby C 扩展 API 问题

所以,最近我不幸地需要为Ruby做一个C扩展(因为性能)。因为我在理解上有问题VALUE(并且仍然如此),所以我查看了Ruby源代码并发现:typedefunsignedlongVALUE;(LinktoSource,但您会注意到它还有其他一些“方法”,但我认为它本质上是一个long;如果我错了,请纠正我)。因此,在进一步调查时,我发现了一个有趣的blogpost,其中说:"...insomecasestheVALUEobjectcouldBEthedatainsteadofPOINTINGTOthedata."令我困惑的是,当我尝试从Ruby将字符串传递给C并使用RSTRING_PT

ruby - 有没有一种快速的方法可以在 Ruby 中找到缺失的结尾?

syntaxerror,unexpected$end,expectingkeyword_end我们都去过那里!假设更改了足够多的代码以至于快速浏览一下gitdiff或类似的东西并不能使它变得明显,是否有一种简单的方法可以找到丢失的end(除了切换到一种基于缩进的语言,如Python)?FWIW,我使用SublimeText2作为我的编辑器。 最佳答案 如果您使用的是Ruby1.9,请在运行您的ruby​​程序时尝试使用-w标志。#t.rbclassExampledefmeth1ifTime.now.hours>12puts"Afte

c - 在 C 中扩展 ruby​​ - 如何指定函数的默认参数值?

我正在尝试为将生成一个类的ruby​​编写C扩展。我正在研究如何为类定义一些默认参数。例如,如果我在ruby​​中有这个类decleration:classMyClassdefinitialize(name,age=10)@name=name@age=ageendend您可以使用mc=MyClass.new("blah")初始化它,年龄参数将在内部设置。我如何在C中执行此操作?到目前为止我得到了这个,但这迫使进入另一个论点:require"ruby.h"staticVALUEmy_init(VALUEself,VALUEname,VALUEage){rb_iv_set(self,"@n

ruby - 如果 Ruby 的所有实现都被编译成字节码,Ruby 真的是一种解释型语言吗?

在为thisquestionaboutBlueRuby选择的答案中,查克说:AllofthecurrentRubyimplementationsarecompiledtobytecode.ContrarytoSAP'sclaims,asofRuby1.9,MRIitselfincludesabytecodecompiler,thoughtheabilitytosavethecompiledbytecodetodiskdisappearedsomewhereintheprocessofmergingtheYARVvirtualmachine.JRubyiscompiledintoJava

c - 如何在 Mac OS X 上使用 ulimit 或每个进程为 C 或 Ruby 程序更改堆栈大小?

似乎为C程序或Ruby程序(使用C堆栈)设置堆栈大小的推荐方法是使用ulimit。在Bash外壳中。但是$ulimit-s8192$ulimit-s16384-bash:ulimit:stacksize:cannotmodifylimit:Operationnotpermitted和sudo也没有帮助。有没有办法将其设置为16MB、32MB或64MB?我认为应该有一种方法可以在每次程序调用时设置它,而不是同时设置系统范围的参数?现在8192可能意味着8MB,如果与一个进程可以使用的内存量相比,这是非常小的,有时最多2GB的RAM。(更新注释:ulimit-a可以显示其当前值)。(更新2

ruby - 有没有一种简单的方法可以在 Ruby 中复制多维数组?

我在Ruby中有一个二维数组,我想生成一个工作副本。显然我不能这样做;array=[[3,4],[5,9],[10,2],[11,3]]temp_array=array因为我对temp_array所做的任何修改也将对数组进行,因为我只是复制了对象标识符。我以为我可以通过简单地使用来解决这个问题;temp_array=array.dup但这不起作用,因为temp_array只是一个重复的对象标识符数组,所以我最终还是修改了初始数组(如果我明白这样做时出了什么问题)。我找到的解决方案是执行以下操作;temp_array=[]array.each{|sub|temp_array这实现了我想要

ruby-on-rails - Ruby on Rails,一种形式的两种模型

我有两个非常相似的模型Pretreatment和Diagnosis,属于模型Patient:classPretreatment在Patient显示页面上,我显示了两种形式,一种用于预处理,另一种用于诊断:我的问题是如何将这两个表单放在一起,以便用户只需按一次提交按钮?我不确定,但我认为嵌套属性不是处理它的正确方法,也许是fields_for`标签?更新我尝试使用fields_for标签:但是我得到了错误:undefinedmethod`model_name'forArray:Classin 最佳答案 对关联模型使用fields_fo